<?php

if(empty($sortBy))	$sortBy="1";
if(!empty($search))	$additionalReq = " WHERE inn LIKE '%".$search."%'";
$tarif=3;
$ttimefr=8;
$ttimeto=22;
//$OrgInn='';
ini_set('display_errors',1); //включение отображения ошибок
error_reporting(E_ALL);

// ----------------------------------------------------------------------------
//удалить временную таблицу
$qDropTable="DROP TABLE org_otchet";


if (1){// Подзапрос для выяснения общего количества страниц
  // ----------------------------------------------------------------------------
//  $qLimit="select prefix from org_otchet;";
}
$q="SELECT prefix FROM org_otchet";
// выбрать счетчик строк для лимитов
//		$limitsP = getLimits($qLimit);
//удалить временную таблицу
//		$qDropTable="DROP TABLE cdr_otchet";


//if (1){//  Запорос по всем организациям во временную таблицу инн,название,номера телефонов $qOrgTemp
//  $qOrgTemp="";
//}


if (1){//  запрос по организациям где есть телдефоны
  $qOrgInn="SELECT fullname, inn, chargeplanid AS tarif FROM organization1
  WHERE inn IN (SELECT inn FROM orgphonebook".$additionalReq.") ORDER BY 1";
}
if (1){//  запрос к временным таблицам суммарное время и соимость по всем $qOrgSumTotal sum(price)
  $qOrgSumTotal="SELECT ('12334')::numeric AS price";
}
//--------удалить временную таблицу
//$conn->Execute($qDT);
if($debug) echo $q."<br>";

//if($debug) echo $qOrgAllSumMGMNTotal."<br>";
if($debug) echo $qOrgInn."<br>";

$resOrgInn = $conn->Execute($qOrgInn);

//if (1){ // Напечатаем на странице все исходные параметры нашего запроса
  
  // ----------------------------------------------------------------------------
//  if(!empty($res->fields[4])) $coLineDescription = $res->fields[4];
 // if(!empty($res->fields[5])) $intPhoneDescription = $res->fields[5];
//  if(empty($export)) pechat_ishodnyh();
//}


// ----------------------------------------------------------------------------
if ($resOrgInn && $resOrgInn->RecordCount() > 0) 
{ // если по запросу найдены записи в таблице 
  // Проверим, может это экспорт?
  // ----------------------------------------------------------------------------
  // 
  if(empty($export))
  { // оформление таблицы на странице
    
    print("<table cellspacing=0 cellpadding=1 border=0><tr ".$COLORS['BaseBorderTableBgcolor'].">
    <td>
    <table cellspacing=1 cellpadding=6 border=0>");
    print ("<tr ".$COLORS['BaseTablesBgcolor']." align=center>
    <td>");
    AddTableHeader("1",$GUI_LANG['DateOfCall'],$toprint);
    echo("</td>
    <td>");
    AddTableHeader("2",$GUI_LANG['InternalPhone'],$toprint);
    echo("</td>
    <td>");
    AddTableHeader("3",$GUI_LANG['Number'],$toprint);
    echo("</td>
    <td>");
    AddTableHeader("5",$GUI_LANG['Direction'],$toprint);
    echo("</td>
    <td>");
    AddTableHeader("4",$GUI_LANG['Duration'],$toprint);
    echo("</td>
    <td>");
    AddTableHeader("6",$GUI_LANG['Price'],$toprint);
    echo("</td>
    </tr>");
  }
  else
  {// оформление таблицы на странице Да, это действительно экспорт!
    // ------------------------------------------------------------------------------------------------------
    //  --------Создать книгу эксель
    if (1) {  //Блок создания книги эксель
      
      $objPHPExcel = new PHPExcel();
      
      // Set document properties
      $objPHPExcel->getProperties()->setCreator("Denis Davydov")
      ->setLastModifiedBy("Denis Davydov")
      ->setTitle("Office 2007 XLSX Test Document")
      ->setSubject("Office 2007 XLSX Test Document")
      ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
      ->setKeywords("office 2007 openxml php")
      ->setCategory("Test result file");
    }	
    if (1) {	// Устанавливаем индекс активного листа
      $objPHPExcel->setActiveSheetIndex(0);
    }
    if (1){ // тут заполняем первый лист - рисование шапки и самой таблицы
      
      $styleArray = array(
      'font' => array(
        'name' => 'Arial',
        'size' => '8',
      ),
      'borders' => array(
        'left' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'right' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'vertical' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'bottom' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ), 
        'horizontal' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ), 

      ),
      'fill' => array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array(
          'argb' => 'FFFFFFFF',
        ),
      ),
    );
    
      $styleArray1 = array(
      'font' => array(
        'name' => 'Arial',
        'size' => '8',
      ),
      'borders' => array(
        'left' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'right' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'vertical' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'bottom' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ), 
        'horizontal' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ), 

      ),
      'fill' => array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array(
          'argb' => '2F4F4F',
        ),
      ),
    );
    
      $styleArray2 = array(
      'font' => array(
        'name' => 'Arial',
        'size' => '8',
      ),
      'borders' => array(
        'left' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'right' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'vertical' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ),
        'bottom' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ), 
        'horizontal' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN,
        ), 

      ),
      'fill' => array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array(
          'argb' => '7FFFD4',
        ),
      ),
    );

      
      
      $Month="Февраль";
      $Title='Отчет 1 все звонки за'.$Month;
      $aSheet = $objPHPExcel->getActiveSheet();

      if(1){	// Ориентация страницы и  размер листа
	$aSheet->getPageSetup()
	->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
	$aSheet->getPageSetup()
	->SetPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
	//		        // Поля документа
	$aSheet->getPageMargins()->setTop(1);
	$aSheet->getPageMargins()->setRight(0.75);
	$aSheet->getPageMargins()->setLeft(0.75);
	$aSheet->getPageMargins()->setBottom(1);
      }
      if(1){  // Название листа
	$aSheet->setTitle($Title);
      }
      if(1){  // Шапка и футер (при печати)
	$aSheet->getHeaderFooter()
	->setOddHeader('ООО Информсистемы');
	$aSheet->getHeaderFooter()
	->setOddFooter('&L&B'.$aSheet->getTitle().'&RСтраница &P из &N');
      }
//      if(1){  // Настройки шрифта
//	$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
//	$objPHPExcel->getDefaultStyle()->getFont()->setSize(8);
//      }
      if(1){  // Настройки ширины колонок
	$aSheet->getColumnDimension('A')->setWidth(18);
	$aSheet->getColumnDimension('B')->setWidth(10);
	$aSheet->getColumnDimension('C')->setWidth(15);
	$aSheet->getColumnDimension('D')->setWidth(30);
	$aSheet->getColumnDimension('E')->setWidth(15);
	$aSheet->getColumnDimension('F')->setWidth(15);
      }
      if(1){  // Оформление ячеек и надписей
	$aSheet->mergeCells('A1:E1');
	$aSheet->getRowDimension('1')->setRowHeight(20);
	$aSheet->setCellValue('A1','ОАО Информсистемы');
	$aSheet->mergeCells('A2:E2');
	$aSheet->setCellValue('A2','Счет за месяц '.$Month);
	$aSheet->mergeCells('A4:C4');
	$aSheet->setCellValue('A4','Дата создания отчета');
	$aSheet->getStyle('D4')->getNumberFormat()
	->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14);
	unset ($Month);

      }
      if(1){  //оформление колонок счета на листе
	$aSheet->setCellValue('A5',$GUI_LANG['DateOfCall']);
	$aSheet->getStyle('A5',$GUI_LANG['DateOfCall'])->getAlignment()->setWrapText(true);
	$aSheet->setCellValue('B5',$GUI_LANG['InternalPhone']);
	$aSheet->getStyle('B5',$GUI_LANG['InternalPhone'])->getAlignment()->setWrapText(true);
	$aSheet->setCellValue('C5',$GUI_LANG['Number']);
	$aSheet->setCellValue('D5',$GUI_LANG['Direction']);
      }
      
      $aSheet->getStyle('A1:E8')->applyFromArray($styleArray);
      
    }
  }
  
  if(empty($export))
  { // печатаем строки на листе
    
    $iterator=0;
    while (!$resOrgInn->EOF) 
    { //цикл заполнения таблицы итоговой суммы по всем организациям $resOrgInn
      
      
      $row = $resOrgInn->fields;
      $OrgFullName=$row[0];
      $OrgInn=$row[1];
      $tarif=$row[2];
//      var_dump($OrgInn);
      
      //--------удалить временную таблицу
      //$conn->Execute($qDropTable);
	    if (strcmp($OrgInn,"2508001449")==0)
	    {
	        $qTrunkPart="AND n.createtrunk ='11'
	        AND (substring(n.numberfromdial from '......$') 
	        NOT IN (select onumber from orgphonebook where 
	        onumber LIKE '61%' AND description='2' OR onumber LIKE '79%'
	        ))";
	    }
	    else
	    {
		$qTrunkPart="AND (substring(n.numberfromdial from '......$') 
		IN (select onumber from orgphonebook where inn='".$OrgInn."' )
		OR (n.createstation!='0' AND n.createstation 
		IN  (select intnumber from orgphonebook where inn='".$OrgInn."')))";
	    }
/*	    if (strcmp($OrgInn,"2508025320")==0)
	        {
	        $qTrunkPart="AND n.createtrunk ='12'
	        AND (substring(n.numberfromdial from '......$') 
	        NOT IN (select onumber from orgphonebook where 
	        onumber LIKE '61%' AND description='2' OR onumber LIKE '79%'
	        ))";
	        }
	        else
	        {
	        $qTrunkPart="AND (substring(n.numberfromdial from '......$') 
	        IN (select onumber from orgphonebook where inn='".$OrgInn."' )
	        OR (n.createstation!='0' AND n.createstation 
	        IN  (select intnumber from orgphonebook where inn='".$OrgInn."')))";
		}
*/


      if (1){// Подзапрос для временной таблицы где выбираем все исходящие $qTemp
	$qTemp="create temporary table org_otchet AS 
	    SELECT n.numbertodial,n.calltime
	,n.endtime
	,n.answertime
	,n.endtime AS endtimed
	,n.answertime AS answertimed
	,('2000-01-01 00:00:00')::timestamp AS endtimen
	,('2000-01-01 00:00:00')::timestamp AS answertimen
	,pg_prefix(n.numbertodial) as prefix
	,getzone(pg_prefix(n.numbertodial),'".$tarif."') AS zoneid
	from cdr AS n
	    WHERE
	n.calltime >='".$from_date."' AND n.calltime<='".$to_date."'  
	AND callstatus IN ('13','6','24','27' ) 
	AND n.numbertodial!='0'
	AND n.selectiontrunk NOT IN ('2')
	AND character_length(n.numbertodial)>'5'
	AND n.numbertodial NOT LIKE '842366%' 
	AND n.numbertodial NOT LIKE '842367%' 
	AND n.numbertodial NOT LIKE '8800%'
	AND EXTRACT(hour FROM n.calltime) BETWEEN '".$ttimefr."' AND '".$ttimeto."'
	".$qTrunkPart."
	    UNION ALL
	SELECT n.numbertodial,n.calltime
	,n.endtime
	,n.answertime
	,('2000-01-01 00:00:00')::timestamp AS endtimed
	,('2000-01-01 00:00:00')::timestamp AS answertimed
	,n.endtime AS endtimen
	,n.answertime AS answertimen
	,pg_prefix(n.numbertodial) as prefix
	,getzone(pg_prefix(n.numbertodial),'".$tarif."') AS zoneid
	from cdr AS n
	WHERE
	n.calltime >='".$from_date."' AND n.calltime<='".$to_date."'  
	AND callstatus IN ('13','6','24','27' ) 
	AND n.numbertodial!='0'
	AND n.selectiontrunk NOT IN ('2')
	AND character_length(n.numbertodial)>'5'
	AND n.numbertodial NOT LIKE '842366%' 
	AND n.numbertodial NOT LIKE '842367%' 
	AND n.numbertodial NOT LIKE '8800%'
	AND EXTRACT(hour FROM n.calltime) NOT BETWEEN '".$ttimefr."' AND '".$ttimeto."'
	".$qTrunkPart;


if (1){//  Запрос к временным таблицам по одной организации исходящие MG вызовы $qOrgMGDay   (org.fullname, directions,time day,time night, summ(Price))
  $qOrgMGDay=
  " SELECT dest.name
  ,sum(gettime(t.endtimed,t.answertimed)) AS daytime
  ,sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))::numeric
  ,sum(gettime(t.endtimen,t.answertimen)) AS ntime
  ,sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."'))::numeric
  ,(sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))+
  sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."')))::numeric AS all
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code='RUS'
GROUP BY 1";
  
}

if (1){//  Запрос к временным таблицам по одной организации исходящие MG вызовы $qOrgMGSum (sum(price))
  $qOrgMGSum=
  "SELECT sum(getprice(t.answertime,t.endtime,t.zoneid,'".$tarif."'))::numeric
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
  JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code='RUS'
  ";
  
}

if (1){//  Запрос к временным таблицам по одной организации исходящие MN вызовы $qOrgMGDay   (org.fullname, directions,time day,time night, summ(Price))
  $qOrgMNDay=
    " SELECT dest.name
  ,sum(gettime(t.endtimed,t.answertimed)) AS daytime
  ,sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))::numeric
  ,sum(gettime(t.endtimen,t.answertimen)) AS ntime
  ,sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."'))::numeric
  ,(sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))+
  sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."')))::numeric AS all
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
  JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code!='RUS'
GROUP BY 1";

}

if (1){//  Запрос к временным таблицам по одной организации исходящие MN вызовы $qOrgMNSum (sum(price))
  $qOrgMNSum=
    "SELECT sum(getprice(t.answertime,t.endtime,t.zoneid,'".$tarif."'))::numeric
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
    JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code!='RUS'";
}

if (1){//  Запрос к временным таблицам по одной организации исходящие MGMN вызовы $qOrgMGMNSum (sum(price))
  $qOrgMGMNSum= "SELECT sum(getprice(t.answertime,t.endtime,t.zoneid,'".$tarif."'))::numeric
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid";
}


      }


      if($debug) echo $qTemp."<br>";
      $conn->Execute($qTemp);
      if($debug) echo $q."<br>";
      $res=$conn->Execute($q);
      if ($res && $res->RecordCount() > 0) 
{
	$resOrgMGMNSum = $conn->Execute($qOrgMGMNSum);
	$row1 = $resOrgMGMNSum->fields;
	$OrgSumma=$row1[0];

   
      
      
      
     } 
        $conn->Execute($qDropTable); 
	$resOrgInn->MoveNext();
      $iterator=$iterator+1;
    }
  }
  else
  {// печатаем строки на листе Да, это действительно экспорт!
    
    $iterator=0;
    while (!$resOrgInn->EOF) 
    { //цикл заполнения таблицы итоговой суммы по всем организациям $resOrgInn
 
      
      $row = $resOrgInn->fields;
      $OrgFullName=$row[0];
      $OrgInn=$row[1];
      $tarif=$row[2];
//      var_dump($OrgInn);
      if (1){// Подзапрос для временной таблицы где выбираем все исходящие $qTemp
	    if (strcmp($OrgInn,"2508001449")==0)
	        {
	        $qTrunkPart="AND n.createtrunk ='11'
	        AND (substring(n.numberfromdial from '......$') 
	        NOT IN (select onumber from orgphonebook where 
	        onumber LIKE '61%' AND description='2' OR onumber LIKE '79%'
	        ))";
	        }
	        else
	        {
	        $qTrunkPart="AND (substring(n.numberfromdial from '......$') 
	        IN (select onumber from orgphonebook where inn='".$OrgInn."' )
	        OR (n.createstation!='0' AND n.createstation 
	        IN  (select intnumber from orgphonebook where inn='".$OrgInn."')))";
		}
/*
	    if (strcmp($OrgInn,"2508025320")==0)
	        {
	        $qTrunkPart="AND n.createtrunk ='12'
	        AND (substring(n.numberfromdial from '......$') 
	        NOT IN (select onumber from orgphonebook where 
	        onumber LIKE '61%' AND description='2' OR onumber LIKE '79%'
	        ))";
	        }
	        else
	        {
	        $qTrunkPart="AND (substring(n.numberfromdial from '......$') 
	        IN (select onumber from orgphonebook where inn='".$OrgInn."' )
	        OR (n.createstation!='0' AND n.createstation 
	        IN  (select intnumber from orgphonebook where inn='".$OrgInn."')))";
		}
*/
	$qTemp="create temporary table org_otchet AS 
	    SELECT n.numbertodial,n.calltime
	,n.endtime
	,n.answertime
	,n.endtime AS endtimed
	,n.answertime AS answertimed
	,('2000-01-01 00:00:00')::timestamp AS endtimen
	,('2000-01-01 00:00:00')::timestamp AS answertimen
	,pg_prefix(n.numbertodial) as prefix
	,getzone(pg_prefix(n.numbertodial),'".$tarif."') AS zoneid
	from cdr AS n
	    WHERE
	n.calltime >='".$from_date."' AND n.calltime<='".$to_date."'  
	AND callstatus IN ('13','6','24','27' ) 
	AND n.numbertodial!='0'
	AND n.selectiontrunk NOT IN ('2')
	AND character_length(n.numbertodial)>'5'
	AND n.numbertodial NOT LIKE '842366%' 
	AND n.numbertodial NOT LIKE '842367%' 
	AND n.numbertodial NOT LIKE '8800%'
	AND EXTRACT(hour FROM n.calltime) BETWEEN '".$ttimefr."' AND '".$ttimeto."'
	".$qTrunkPart."
	    UNION ALL
	SELECT n.numbertodial,n.calltime
	,n.endtime
	,n.answertime
	,('2000-01-01 00:00:00')::timestamp AS endtimed
	,('2000-01-01 00:00:00')::timestamp AS answertimed
	,n.endtime AS endtimen
	,n.answertime AS answertimen
	,pg_prefix(n.numbertodial) as prefix
	,getzone(pg_prefix(n.numbertodial),'".$tarif."') AS zoneid
	from cdr AS n
	WHERE
	n.calltime >='".$from_date."' AND n.calltime<='".$to_date."'  
	AND callstatus IN ('13','6','24','27' ) 
	AND n.selectiontrunk NOT IN ('2')
	AND numbertodial!='0'
	AND character_length(n.numbertodial)>'5'
	AND n.numbertodial NOT LIKE '842366%' 
	AND n.numbertodial NOT LIKE '842367%' 
	AND n.numbertodial NOT LIKE '8800%'
	AND EXTRACT(hour FROM n.calltime) NOT BETWEEN '".$ttimefr."' AND '".$ttimeto."'
	".$qTrunkPart;


if (1){//  Запрос к временным таблицам по одной организации исходящие MG вызовы $qOrgMGDay   (org.fullname, directions,time day,time night, summ(Price))
  $qOrgMGDay=
  " SELECT dest.name
  ,sum(gettime(t.endtimed,t.answertimed)) AS daytime
  ,sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))::numeric
  ,sum(gettime(t.endtimen,t.answertimen)) AS ntime
  ,sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."'))::numeric
  ,(sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))+
  sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."')))::numeric AS all
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code='RUS'
GROUP BY 1";
  
}

if (1){//  Запрос к временным таблицам по одной организации исходящие MG вызовы $qOrgMGSum (sum(price))
  $qOrgMGSum=
  "SELECT sum(getprice(t.answertime,t.endtime,t.zoneid,'".$tarif."'))::numeric
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
  JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code='RUS'
  ";
  
}

if (1){//  Запрос к временным таблицам по одной организации исходящие MN вызовы $qOrgMGDay   (org.fullname, directions,time day,time night, summ(Price))
  $qOrgMNDay=
    " SELECT dest.name
  ,sum(gettime(t.endtimed,t.answertimed)) AS daytime
  ,sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))::numeric
  ,sum(gettime(t.endtimen,t.answertimen)) AS ntime
  ,sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."'))::numeric
  ,(sum(getprice(t.answertimed,t.endtimed,t.zoneid,'".$tarif."'))+
  sum(getprice(t.answertimen,t.endtimen,t.zoneid,'".$tarif."')))::numeric AS all
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
  JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code!='RUS'
GROUP BY 1";

}

if (1){//  Запрос к временным таблицам по одной организации исходящие MN вызовы $qOrgMNSum (sum(price))
  $qOrgMNSum=
    "SELECT sum(getprice(t.answertime,t.endtime,t.zoneid,'".$tarif."'))::numeric
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid
    JOIN destinations AS d ON d.prefix=t.prefix AND d.direction_code!='RUS'";
}

if (1){//  Запрос к временным таблицам по одной организации исходящие MGMN вызовы $qOrgMGMNSum (sum(price))
  $qOrgMGMNSum= "SELECT sum(getprice(t.answertime,t.endtime,t.zoneid,'".$tarif."'))::numeric
    FROM org_otchet AS t
  JOIN destinationgroups AS dest ON dest.id=t.zoneid";
}


      }
      
      
      if($debug) echo $qTemp."<br>";
      $conn->Execute($qTemp);
      if($debug) echo $q."<br>";
      $res=$conn->Execute($q);
      if ($res && $res->RecordCount() > 0) 
    {
      if (1) 
      {
	$aSheet->setCellValue('A'.($iterator+6), $OrgFullName);
	$aSheet->getStyle('A'.($iterator+6), $OrgFullName)->getAlignment()->setWrapText(true);
	$aSheet->getRowDimension(($iterator+6))->setRowHeight(-1);
	
	if (1)
	{ // блок создания листа каждой организации
	  $objPHPExcel->createSheet();
	}
	if (1) 
	{ // Блок выбора листа организации
	  if (1) 
	  {	// Устанавливаем индекс активного листа
	    $objPHPExcel->setActiveSheetIndex($iterator+1);
	  }
	  $aSheet = $objPHPExcel->getActiveSheet();	
	  
	}
	if (1) 
	{// блок оформления листа каждой организации
	  if(1)
	  {  // Название листа
	    $aSheet->setTitle($OrgInn);
	  }
	$aSheet->getColumnDimension('A')->setWidth(30);
	$aSheet->getColumnDimension('B')->setWidth(20);
	$aSheet->getColumnDimension('C')->setWidth(10);
	$aSheet->getColumnDimension('D')->setWidth(10);
	$aSheet->getColumnDimension('E')->setWidth(10);
	$aSheet->getColumnDimension('F')->setWidth(10);
	$aSheet->getColumnDimension('G')->setWidth(10);

	
	
	}
	if (1) 
	{// вызываем запрос для получения сумм по направлениям межгород дневной трафик и записываем на лист qOrgMGDay
	  //									qOrgMGDay   (directions,time day,time night, summ(Price))
	  $iterator1=0;
	  if($debug) echo $qOrgMGDay."<br>";
	  
	  $resOrgMGDay = $conn->Execute($qOrgMGDay);
	  if ($resOrgMGDay && $resOrgMGDay->RecordCount() > 0) 
	  {
	$aSheet->mergeCells('A'.($iterator1+1).':G'.($iterator1+1));
	$aSheet->setCellValue('A'.($iterator1+1),'МЕЖДУГОРОДНИЕ ЗВОНКИ');
	$aSheet->getStyle('A'.($iterator1+1))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

	  if(1){  //оформление колонок счета на листе
	$aSheet->setCellValue('A'.($iterator1+2),'Организация');
	$aSheet->getStyle('A'.($iterator1+2),'Организация')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('A'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->setCellValue('B'.($iterator1+2),'Регион');
	$aSheet->getStyle('B'.($iterator1+2),'Направление')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('B'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->mergeCells('C'.($iterator1+2).':D'.($iterator1+2));
	$aSheet->setCellValue('C'.($iterator1+2),'Дневной трафик');
	$aSheet->getStyle('C'.($iterator1+2),'Дневной трафик')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('C'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->mergeCells('E'.($iterator1+2).':F'.($iterator1+2));
	$aSheet->setCellValue('E'.($iterator1+2),'Ночной трафик');
	$aSheet->getStyle('E'.($iterator1+2),'Ночной трафик')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('E'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->setCellValue('G'.($iterator1+2),'Сумма');
	$aSheet->getStyle('G'.($iterator1+2),'Сумма')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('G'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

      }
	    
	    
	    
	    while (!$resOrgMGDay->EOF) 
	    {// цикл заполняем счет по организации межгород
	      $row1 = $resOrgMGDay->fields;
	      //						$OrgInn=$row1[0];
	      $DirectionsMG=$row1[0];
	      $DayTime=$row1[1];
	      $PriceDay=$row1[2];
	      $NightTime=$row1[3];
	      $PriceNight=$row1[4];
	      $Price=$row1[5];
	      
	      $aSheet->setCellValue('A'.($iterator1+3), $OrgFullName);
	      $aSheet->getStyle('A'.($iterator1+3), $OrgFullName)->getAlignment()->setWrapText(true);
	      $aSheet->setCellValueExplicit('B'.($iterator1+3),$DirectionsMG, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->getStyle('B'.($iterator1+3), $DirectionsMG)->getAlignment()->setWrapText(true);
	      $aSheet->setCellValueExplicit('C'.($iterator1+3),$DayTime, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('D'.($iterator1+3),$PriceDay, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('E'.($iterator1+3),$NightTime, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('F'.($iterator1+3),$PriceNight, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('G'.($iterator1+3),$Price, PHPExcel_Cell_DataType::TYPE_STRING);
	      
	      $resOrgMGDay->MoveNext();
	      $iterator1=$iterator1+1;
	      
	    }

	unset ($row1);
	unset ($resOrgMGDay);
	$aSheet->mergeCells('A'.($iterator1+3).':F'.($iterator1+3));
	$aSheet->setCellValue('A'.($iterator1+3),'МЕЖДУГОРОДНИЕ ЗВОНКИ ИТОГО');
	$aSheet->getStyle('A'.($iterator1+3))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//	$aSheet->mergeCells('A'.($iterator1+4).':G'.($iterator1+4));
	$idColor=$iterator1+3;

	    
	    
	    if (1) 
	    { // вызываем запрос для получения итоговой суммы по направлениям межгород
	      if($debug) echo $qOrgMGSum."<br>";
	      
	      $resOrgMGSum = $conn->Execute($qOrgMGSum);
	      $row1 = $resOrgMGSum->fields;
	      $Price=$row1[0];
		unset ($row1);
		unset ($resOrgMGSum);
	      $aSheet->setCellValue('G'.($iterator1+3), $Price);
		unset ($Price);

	    }
	  }
	}
	if (1) 
	{// вызываем запрос для получения сумм по направлениям международные дневной трафик и записываем на лист qOrgMNDay
	  //	iterator1=0;
	  
	  if($debug) echo $qOrgMNDay."<br>";
	  $resOrgMNDay = $conn->Execute($qOrgMNDay);
	  if ($resOrgMNDay && $resOrgMNDay->RecordCount() > 0) 
	  {
	    $iterator1=$iterator1+4;  //Отступаем на размер оформления
	$aSheet->mergeCells('A'.($iterator1).':G'.($iterator1));
	$aSheet->mergeCells('A'.($iterator1+1).':G'.($iterator1+1));
	$aSheet->setCellValue('A'.($iterator1+1),'МЕЖДУНАРОДНЫЕ ЗВОНКИ');
	$aSheet->getStyle('A'.($iterator1+1))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

	  if(1){  //оформление колонок счета на листе
	$aSheet->setCellValue('A'.($iterator1+2),'Организация');
	$aSheet->getStyle('A'.($iterator1+2),'Организация')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('A'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->setCellValue('B'.($iterator1+2),'Регион');
	$aSheet->getStyle('B'.($iterator1+2),'Направление')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('B'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->mergeCells('C'.($iterator1+2).':D'.($iterator1+2));
	$aSheet->setCellValue('C'.($iterator1+2),'Дневной трафик');
	$aSheet->getStyle('C'.($iterator1+2),'Дневной трафик')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('C'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->mergeCells('E'.($iterator1+2).':F'.($iterator1+2));
	$aSheet->setCellValue('E'.($iterator1+2),'Ночной трафик');
	$aSheet->getStyle('E'.($iterator1+2),'Ночной трафик')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('E'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$aSheet->setCellValue('G'.($iterator1+2),'Сумма');
	$aSheet->getStyle('G'.($iterator1+2),'Сумма')->getAlignment()->setWrapText(true);
	$aSheet->getStyle('G'.($iterator1+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

      }

	    
	    while (!$resOrgMNDay->EOF) 
	    {// цикл заполняем счет по организации межгород
	      $row1 = $resOrgMNDay->fields;
	      //						$OrgInn=$row1[0];
	      $DirectionsMN=$row1[0];
	      $DayTime=$row1[1];
	      $PriceDay=$row1[2];
	      $NightTime=$row1[3];
	      $PriceNight=$row1[4];
	      $Price=$row1[5];
	      
	      $aSheet->getRowDimension(1)->setRowHeight(-1);
	      $aSheet->setCellValue('A'.($iterator1+3), $OrgFullName);
	      $aSheet->getStyle('A'.($iterator1+3), $OrgFullName)->getAlignment()->setWrapText(true);
	      $aSheet->setCellValueExplicit('B'.($iterator1+3),$DirectionsMN, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->getStyle('B'.($iterator1+3), $DirectionsMN)->getAlignment()->setWrapText(true);
	      $aSheet->setCellValueExplicit('C'.($iterator1+3),$DayTime, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('D'.($iterator1+3),$PriceDay, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('E'.($iterator1+3),$NightTime, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('F'.($iterator1+3),$PriceNight, PHPExcel_Cell_DataType::TYPE_STRING);
	      $aSheet->setCellValueExplicit('G'.($iterator1+3),$Price, PHPExcel_Cell_DataType::TYPE_STRING);

	      
	      $resOrgMNDay->MoveNext();
	      $iterator1=$iterator1+1;
	      
	    }
		unset ($row1);
		unset ($resOrgMNDay);


	$aSheet->mergeCells('A'.($iterator1+3).':F'.($iterator1+3));
	$aSheet->setCellValue('A'.($iterator1+3),'МЕЖДУНАРОДНЫЕ ЗВОНКИ ИТОГО');
	$aSheet->getStyle('A'.($iterator1+3))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

	    
	if (1) 
	{ // вызываем запрос для получения итоговой суммы по направлениям межгород международные и записываем на лист
	  if($debug) echo $qOrgMNSum."<br>";
	  
	  $resOrgMNSum = $conn->Execute($qOrgMNSum);
	  $row1 = $resOrgMNSum->fields;
	  $Price=$row1[0];
	  $aSheet->setCellValue('G'.($iterator1+3), $Price);
	unset ($row1);
	unset ($resOrgMGSum);

	}    
	  
	  
	}
	
	}
	if (1) 
	{ // вызываем запрос для получения итоговой суммы и записываем на лист
	  if($debug) echo $qOrgMGMNSum."<br>";
		$aSheet->mergeCells('A'.($iterator1+4).':F'.($iterator1+4));
		$aSheet->setCellValue('A'.($iterator1+4),'ЗВОНКИ ИТОГО');
		$aSheet->getStyle('A'.($iterator1+4))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $aSheet->getStyle('A1:G'.($iterator1+4))->applyFromArray($styleArray);


        $aSheet->getStyle('A1:G1')->applyFromArray($styleArray1);
        $aSheet->getStyle('A2:G2')->applyFromArray($styleArray2);
        $aSheet->getStyle('A'.($iterator1+3).':G'.($iterator1+3))->applyFromArray($styleArray2);
        $aSheet->getStyle('A'.($iterator1+4).':G'.($iterator1+4))->applyFromArray($styleArray2);
        $aSheet->getStyle('A'.($idColor).':G'.($idColor))->applyFromArray($styleArray2);
if (($idColor+2)<($iterator1+4))
{
        $aSheet->getStyle('A'.($idColor+2).':G'.($idColor+2))->applyFromArray($styleArray1);
}
	  $resOrgMGMNSum = $conn->Execute($qOrgMGMNSum);
	  $row1 = $resOrgMGMNSum->fields;
	  $OrgSumma=$row1[0];
	  
	  $aSheet->setCellValue('G'.($iterator1+4), $OrgSumma);

		unset ($row1);
		unset ($resOrgMGMNSum);
	}
	$iterator=$iterator+1;
	//--------удалить временную таблицу
}
      }
      $resOrgInn->MoveNext();
      $conn->Execute($qDropTable);      
      if(1) 
      { // Блок выбора листа номер 1
	if (1) 
	{	// Устанавливаем индекс активного листа
	  $objPHPExcel->setActiveSheetIndex(0);
	}
	$aSheet = $objPHPExcel->getActiveSheet();	
      }
 	  $aSheet->setCellValue('E'.($iterator+5), $OrgSumma);
    }
  }
  
  
  if(empty($export))
  { // печатаем строки на листе
  }
  else
    // печатаем строки на листе Да, это действительно экспорт!
  {// блок запроса и выборки полной итоговой суммы $qOrgSumTotal
    if(1) 
    { // Блок выбора листа номер 1
      
    }
    if($debug) echo $qOrgSumTotal."<br>";
    
    $resOrgSumTotal = $conn->Execute($qOrgSumTotal);
    $row = $resOrgSumTotal->fields;
    $sumOrgTotal=$row[0];
	unset ($row);
	unset ($resOrgMGSum);

	$aSheet->mergeCells('A'.($iterator+6).':D'.($iterator+6));
	$aSheet->setCellValue('A'.($iterator+6),'ЗВОНКИ ИТОГО');
      $aSheet->getStyle('A1:E'.($iterator+6))->applyFromArray($styleArray);

     $aSheet->setCellValue('E'.($iterator+6), '=SUM(E6:E'.($iterator+5).')');
    
  
  }
  
  if(empty($export))
  { // печатаем строки на листе
  }
  else
  {// печатаем строки на листе Да, это действительно экспорт!//экспорт отдаем файл пользователю
    
    // Redirect output to a client’s web browser (Excel2007)
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="01simple.xlsx"');
    header('Cache-Control: max-age=0');
    // If you're serving to IE 9, then the following may be needed
    header('Cache-Control: max-age=1');
    
    // If you're serving to IE over SSL, then the following may be needed
    header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
    header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
    header ('Pragma: public'); // HTTP/1.0
    
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    unset($objWriter);
    unset($objPHPExcel);
    exit;
  }
  
}
else
{ // ничего для вывода нет
  print("<br><font size=+1>hhhhh".$GUI_LANG['NoSuchData']."</font>");
};

?>
